home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-06-25 | 4.9 KB | 122 lines | [TEXT/CWIE] |
- //
- // CAGASlider.h
- //
- // Apple Grayscale Appearance Slider class for PowerPlant
- // Subclassed from LControl
- //
- // version 1.0 - June 15, 1996
- //
- // Copyright © 1996 by James Jennings. All rights reserved.
- //
-
- #pragma once
-
- #include <LControl.h>
- #include "UGrayscaleAppearance.h"
-
- class CAGASlider : public LControl, UGrayscaleAppearance {
- public:
- enum { class_ID = 'Slid' };
- static CAGASlider* CreateFromStream(LStream *inStream);
- static void Register(void)
- { URegistrar::RegisterClass(CAGASlider::class_ID,
- (ClassCreatorFunc) CAGASlider::CreateFromStream); }
-
- CAGASlider(LStream *inStream);
- virtual ~CAGASlider();
-
- // Enumerations for controling display states.
- typedef enum {
- hot_None = 0,
- hot_Indicator,
- hot_Track // don't confuse 'the track' with 'mouse tracking'.
- } EHotSpots;
- typedef enum {
- ind_Enabled = 0,
- ind_Pressed,
- ind_Ghost,
- ind_Disabled
- } EIndicatorState;
- typedef enum {
- ind_Horizontal = 0,
- ind_North,
- ind_South,
- ind_Vertical,
- ind_East,
- ind_West,
- } EIndicatorDirection;
- typedef enum {
- // Indicator ics8 ID's (direction + state)
- ind_StateOffset = 4,
- ind_First_ics8_ID = 1000/*, // ID that the ics8 IDs start at
- ind_HorizEnabled = ind_First_ics8_ID + ind_StateOffset*ind_Horizontal + ind_Enabled,
- ind_HorizPressed = ind_First_ics8_ID + ind_StateOffset*ind_Horizontal + ind_Pressed,
- ind_HorizGhost = ind_First_ics8_ID + ind_StateOffset*ind_Horizontal + ind_Ghost,
- ind_HorizDisabled = ind_First_ics8_ID + ind_StateOffset*ind_Horizontal + ind_Disabled,
- ind_VertEnabled = ind_First_ics8_ID + ind_StateOffset*ind_Vertical + ind_Enabled,
- ind_VertPressed = ind_First_ics8_ID + ind_StateOffset*ind_Vertical + ind_Pressed,
- ind_VertGhost = ind_First_ics8_ID + ind_StateOffset*ind_Vertical + ind_Ghost,
- ind_VertDisabled = ind_First_ics8_ID + ind_StateOffset*ind_Vertical + ind_Disabled,
- ind_NorthEnabled = ind_First_ics8_ID + ind_StateOffset*ind_North + ind_Enabled,
- ind_NorthPressed = ind_First_ics8_ID + ind_StateOffset*ind_North + ind_Pressed,
- ind_NorthGhost = ind_First_ics8_ID + ind_StateOffset*ind_North + ind_Ghost,
- ind_NorthDisabled = ind_First_ics8_ID + ind_StateOffset*ind_North + ind_Disabled,
- ind_SouthEnabled = ind_First_ics8_ID + ind_StateOffset*ind_South + ind_Enabled,
- ind_SouthPressed = ind_First_ics8_ID + ind_StateOffset*ind_South + ind_Pressed,
- ind_SouthGhost = ind_First_ics8_ID + ind_StateOffset*ind_South + ind_Ghost,
- ind_SouthDisabled = ind_First_ics8_ID + ind_StateOffset*ind_South + ind_Disabled,
- ind_EastEnabled = ind_First_ics8_ID + ind_StateOffset*ind_East + ind_Enabled,
- ind_EasthPressed = ind_First_ics8_ID + ind_StateOffset*ind_East + ind_Pressed,
- ind_EastGhost = ind_First_ics8_ID + ind_StateOffset*ind_East + ind_Ghost,
- ind_EastDisabled = ind_First_ics8_ID + ind_StateOffset*ind_East + ind_Disabled,
- ind_WestEnabled = ind_First_ics8_ID + ind_StateOffset*ind_West + ind_Enabled,
- ind_WestPressed = ind_First_ics8_ID + ind_StateOffset*ind_West + ind_Pressed,
- ind_WestGhost = ind_First_ics8_ID + ind_StateOffset*ind_West + ind_Ghost,
- ind_WestDisabled = ind_First_ics8_ID + ind_StateOffset*ind_West + ind_Disabled
- */ } EIndicator;
-
- protected:
- EIndicatorDirection mDirection;
- EIndicatorState mState;
- Uint16 mNumberOfTicks; // 0 = no tick, 1 = max-min+1 ticks, >1 is the number
- // mContinuousBroadcast == true -> broadcast change without waiting for mouseUp
- Boolean mContinuousBroadcast;
-
- Boolean mIsTracking;
- Int32 mTrackingValue;
-
- virtual void DrawSelf();
- virtual void DrawSelfBasic( Boolean useGrays );
- virtual void DrawTrack( EIndicatorState inState, Boolean inUseGrays = true );
- virtual void DrawIndicator( Int32 inValue, EIndicatorState inState = ind_Enabled,
- Boolean inUseGrays = true );
- virtual void DrawTickMarks( UInt16 inNumber, EIndicatorState inState,
- Boolean inUseGrays = true );
-
- // virtual void DrawIcon1( Rect inWhere, ResIDT inWhich, Boolean inUseGrays );
- virtual void DrawIcon( Rect inWhere, EIndicatorDirection inDirection,
- EIndicatorState inState, Boolean inUseGrays );
- virtual void InitColorData();
- virtual void InitBlackAndWhiteData();
- virtual void InitMaskData();
- virtual void InitPICTDataHelper( LGWorld *inWorld, const ResIDT inPICT,
- const Rect inRect );
- static LGWorld * sColorData;
- static LGWorld * sBlackAndWhiteData;
- static LGWorld * sMaskData;
-
- enum EOrientation { orient_Horizontal, orient_Vertical };
- virtual EOrientation GetOrientation();
-
- virtual void ValueToIndicatorRect( Int32 inValue, Rect & outRect );
- virtual Point ValueToPosition( Int32 inValue );
- virtual Int32 PositionToValue( Point inPosition );
- virtual void GetTrackRect( Rect &outRect );
-
- virtual Int16 FindHotSpot(Point inPoint);
- virtual Boolean PointInHotSpot(Point inPoint, Int16 inHotSpot);
- virtual Boolean TrackHotSpot(Int16 inHotSpot, Point inPoint);
- virtual void HotSpotAction(Int16 inHotSpot, Boolean inCurrInside, Boolean inPrevInside);
- virtual void HotSpotResult(Int16 inHotSpot);
- };
-